/**
 * @filename:LocationService Jan 14, 2025
 * @project Wonder Vue Admin Api  1.1.0
 * Copyright(c) 2022 Wonder Co. Ltd.
 * All right reserved.
 */
package com.wonder.app.service;
import cn.hutool.json.JSONObject;
import com.wonder.app.domain.Location;
import com.wonder.app.domain.MoldAllocation;
import com.wonder.app.domain.MoldMaterial;
import com.wonder.app.domain.PrdInstock;
import com.wonder.app.request.LocationRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wonder.app.request.MoldAllocationRequest;
import com.wonder.app.request.MoldMaterialRequest;

import java.util.Map;
/**
 * @Description:TODO(模具列表服务层)
 * @version: 1.1.0
 * @author: Wonder
 *
 */
public interface MoldMaterialService extends IService<MoldMaterial> {

    /**
     * 验证模具信息
     * @param moldMaterial
     * @param type
     * @return
     */
    public String validate(MoldMaterial moldMaterial,String type);

    /**
     * Description:模具类型分页返回
     * @param request//检索条件
     * @param page//分页参数
     * @return IPage<CapitalType>   //分页记录
     */
    public IPage<MoldMaterial> selectList(MoldMaterialRequest request, Page<MoldMaterial> page);
    /**
     * 详情Stkotherout
     * @param map
     * @return
     */
    Map<String, Object> getmoldmaDetail(Map<String, Object> map);
    /**
     * 入库创建模具列表
     * @param userName
     * @param map
     * @return
     * @throws Exception
     */
    boolean createMoldMaterial(String userName, Map<String, Object> map)throws Exception;

    /**
     * 根据仓库仓位获取模具信息
     * @param map
     * @return
     */
    Map<String, Object> getMoldMaterial(Map<String, Object> map) throws Exception;

    /**
     * 修改模具状态
     * @param
     * @return
     */
    boolean updateMoldStatus(MoldMaterial moldMaterial,String type);


    boolean pickMoldByorderNo(String userName, Map<String, Object> map) throws  Exception;

    boolean ReturnMoldByorderNo(String userName, Map<String, Object> map) throws  Exception;

    boolean deletePickMoldTemp(String userName, Map<String, Object> map) throws  Exception;

    boolean auditPickMold(String userName, Map<String, Object> map)throws  Exception;

    Boolean addMoldUserCount(PrdInstock prdInstock)throws  Exception;

    boolean audit(JSONObject map)throws  Exception;
}
